package com.cotasul.tela;

import java.io.File;
import java.io.FileOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import org.primefaces.event.SelectEvent;

import com.cotasul.bean.ProdutoBean;
import com.cotasul.bean.UsuarioBean;
import com.cotasul.negocio.ProdutoServico;
import com.cotasul.negocio.interfaces.IProdutoServico;
import com.cotasul.tela.datamodel.ProdutoDataModel;

@ManagedBean
@ViewScoped
public class ConsultaPanel implements Serializable {

	private static final long serialVersionUID = 3907878328930733968L;

	public static String campo1;

	private UsuarioBean usuario;

	public static String campo2;

	public static String campo3;

	public static String campo4;

	public static ProdutoBean produto;

	private IProdutoServico<ProdutoBean> produtoServico;

	private List<ProdutoBean> listaProdutos;
	
	private ProdutoDataModel prodModel;

	public ConsultaPanel() {
		listaProdutos = new ArrayList<ProdutoBean>();
		produtoServico = new ProdutoServico<ProdutoBean>();
		usuario = usuario == null ? (UsuarioBean) ((HttpSession) FacesContext
				.getCurrentInstance().getExternalContext().getSession(false))
				.getAttribute("usuario") : usuario;
		prodModel = new ProdutoDataModel(listaProdutos);
	}


	public void atualizaProduto() {
		try {
			listaProdutos = produtoServico.consultaProdutos(campo1, campo2,
					usuario.getCodigo());
			prodModel = null;
			prodModel = new ProdutoDataModel(listaProdutos);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void onProdSelect(SelectEvent event) {
		produto = (ProdutoBean) event.getObject();
	}

	public String imagemProduto(byte[] imagem) {
		FileOutputStream fo;
		try {
			fo = new FileOutputStream(new File("C:\\computador.jpg"));
			fo.write(imagem);
			fo.flush();
			fo.close();
			//<p:graphicImage value="#{consultaPanel.imagemProduto(prod.imagemProd)}" />  
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return "img/computador.jpg";
	}

	public String getCampo1() {
		return campo1;
	}

	public void setCampo1(String campo1) {
		ConsultaPanel.campo1 = campo1;
	}

	public String getCampo2() {
		return campo2;
	}

	public void setCampo2(String campo2) {
		ConsultaPanel.campo2 = campo2;
	}

	public String getCampo3() {
		return campo3;
	}

	public void setCampo3(String campo3) {
		ConsultaPanel.campo3 = campo3;
	}

	public String getCampo4() {
		return campo4;
	}

	public void setCampo4(String campo4) {
		ConsultaPanel.campo4 = campo4;
	}

	public ProdutoBean getProduto() {
		return produto;
	}

	public void setProduto(ProdutoBean produto) {
		ConsultaPanel.produto = produto;
	}

	public IProdutoServico<ProdutoBean> getProdutoServico() {
		return produtoServico;
	}

	public void setProdutoServico(IProdutoServico<ProdutoBean> produtoServico) {
		this.produtoServico = produtoServico;
	}

	public List<ProdutoBean> getListaProdutos() {
		return listaProdutos;
	}

	public void setListaProdutos(List<ProdutoBean> listaProdutos) {
		this.listaProdutos = listaProdutos;
	}


	public UsuarioBean getUsuario() {
		return usuario;
	}


	public void setUsuario(UsuarioBean usuario) {
		this.usuario = usuario;
	}


	public ProdutoDataModel getProdModel() {
		return prodModel;
	}


	public void setProdModel(ProdutoDataModel prodModel) {
		this.prodModel = prodModel;
	}
	
	

}
